.. _Краткое описание Store API: ############################################ Краткое описание Store API ############################################ ******************************************************************** Назначение ******************************************************************** Store API - API предназначенное для взаимодействия с с системой. API позволяет выполнять действия в контексте приложения, а также получать информацию о свойствах приложения, доступных в контексте действий пользователя. Элементами API являются: * действия - операции по изменению данных объектов * геттеры - операции по получению состояния объектов ******************************************************************** Варианты использования ******************************************************************** ======================================================================== Использование в элементах сайдбаров ======================================================================== Store API может использоваться при настройке элементов сайдбаров следующих типов: * **Действие** - возможно использование действий для изменения состояния объектов и использование геттеров для установки значений параметров действий * **URL c параметрами** - возможно использование геттеров для установки значений параметров * **Внутренняя ссылка с параметрами** - возможно использование геттеров для установки значений параметров .. note:: Настройка элементов сайдбаров описана в (:numref:`Работа с узлом "элемент"`) Руководства администратора ======================================================================== Использование в формах ======================================================================== Store API позволяет выполнять действия в компонентах формы: * таблицы * кнопки * иконки .. note:: Настройка действий выполняется в виде JSON в поле **Действия** Пример действия в формате JSON: :: { "handleCurrentChange": { "name": "form/setValues", "payload": [ { "name": "fieldName", "value": "assignee" } ] } } .. где: * **handleCurrentChange** - метод поддерживаемый компонентом * **"name": "form/setValues"** - параметр **name** определяет действие, поддерживаемое Store API * **payload** - массив параметров, передаваемых в действие * **payload.name** - имя параметра * **payload.value** - значение параметра При установке значений парметров действий могут использоваться действия. Для этого описание значения параметра должно быть оформлено следующим образом: :: { "name": "fieldName", "value": { "type": "getter", "name": "getterReturnsObject", "item": "propertyNameFromGetterReturnValue" } } .. где: * **type** - тип параметра getter * **name** - имя геттера * **item** - свойство геттера (необязательный параметр) ======================================================================== Использование во внешних скриптах ======================================================================== Во внешних скриптах доступно использование геттеров см (:numref:`develop_external_scripts`) Руководства разработчика. .. warning:: Использование действий во внешних скриптах запрещено ******************************************************************** Описание Store API ******************************************************************** ======================================================================== Описание действий ======================================================================== *form/submitData (saveItem)* Сохраняет текущую запись *form/resetValues (resetValues)* Устанавливает значения полей в значения по умолчанию *form/setValues (setValues)* Устанавливает значения в текущей форме *form/updateForm (updateForm)* Обновляет значения полей формы в соответсвии со значениями, хранящимися на сервере *form/setTemplate (setTemplate)* Позволяет привязать шаблон к текущей записи .. warning:: Использование действий, не упомянутых в списке, не рекомендовано. .. _Store API Getters: ======================================================================== Описание геттеров ======================================================================== *language* Возвращает текущий язык пользователя *properties* Возвращает список свойств приложения *jsonProperty* Возвращает свойство в json представлении, если применимо *preferences* Возвращает персональные настройки пользователя *unitedPropsPrefs* Возвращает как свойства приложения, так и персональные настройки *getIconByName* Возвращает иконку по ее имени *getSidebarByName* Возвращает описание сайдбара по его имени *formFields* Возвращает перечень полей текущей формы *formFieldValues* Возвращает перечень значений полей текущей формы *fieldNamesInForm* Возвращает список имен полей текущей формы *getEnumData* Возвращает доступные значения энумераторов *getLocalizationData* Возвращает перечень локализованных сообщений *auth/timezone* Возвращает текущую таймзону пользователя .. warning:: Использование геттеров, не упомянутых в списке, не рекомендовано.